<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUserAttentedActivitiesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        //用户关注的活动表

        Schema::create('user_attented_activities', function (Blueprint $table) {
            $table->bigIncrements('id')->unsigned();

            $table->bigInteger('user_id')->unsigned()->comment('志愿者用户id');
            $table->foreign('user_id')->references('id')->on('users');

            $table->integer('activity_id')->unsigned()->comment('关注的活动id');
            $table->foreign('activity_id')->references('id')->on('activities');

            //一般来说，用户关注时关注的是某个城市的活动（创建活动时需要指定活动开展的城市）
            //志愿者只关注自己城市的活动，当然这个字段如果不填，则用户关注的是整个活动
            //如果查看直播时也是这样，如果用户关注的活动没有特定城市，则把该活动所有关联城市的直播详情都展示
            //       举例：某人是上海人，现在由中央某部位主办的全国性公益活动在二十多个城市同时展开，结果他
            //             关注该活动时，选择了关注所有城市而不仅仅只是上海，
            //             那么最后看活动直播时，就会按时间轴把所有城市的直播都打开显示
            $table->integer('city_id')->unsigned()->comment('关注活动的cityid');
            $table->foreign('city_id')->references('id')->on('cities');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('user_attented_activities', function ($table) {
            $table->dropForeign(['activity_id']);
            $table->dropForeign(['user_id']);
            $table->dropForeign(['city_id']);
        });
        Schema::dropIfExists('user_attented_activities');
    }
}
